home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-03-16 | 984 b | 49 lines | [TEXT/ttxt] |
- // EqualTangents
- // set all selected zero tangents to non-zero values
- // (c) Christian Losch
- // 1998 Maxon Computer GmbH
-
- var len_vl,len_vr;
-
- Function(doc)
- {
- var i,num,op,info,sp;
-
- // allocate all data
- info = new (SplineInfo); if (!info) return;
- sp = new (SplinePoint); if (!sp) return;
-
- // get active object
- op = doc->FindFirstActiveObject(); if (!op || getclass(op)!=SplineObject) return;
- op->GetSplineInfo(info);
- if (info->type!=SPL_HERMITE)
- {
- TextDialog("No Hermite Spline");
- return;
- }
-
- // change tangents
- num = op->GetPointNumber();
- for (i=0; i<num; i++)
- {
- if (op->IsPointSelected(i) && op->GetPoint(i,sp))
- {
- if (vlen(sp->vl)==0.0 && vlen(sp->vr)==0)
- {
- sp->vl = vector(-10,0,0);
- sp->vr = vector( 10,0,0);
- op->SetPoint(i,sp);
- }
- }
- }
-
- op->UpdateObject();
- doc->SendMessage(ACTIVE_OBJECT_CHANGED);
- }
-
-
- main()
- {
- len_vl = len_vr = 50.0;
- RegisterMenuHook("Reveal Tangents","Function");
- }